package org.lc.cmd.util;

import org.springframework.util.StringUtils;

import java.util.function.Supplier;

public class StringUtil extends StringUtils {
    /**
     * 拆分键值
     *
     * @param source 需分割的字符串
     * @param separator 分隔符
     * @return 键值对 长度为2，不包含null元素。如果源字符串不包含分隔符，返回null
     */
    public static String[] splitKv(String source, String separator) {
        int index = source.indexOf(separator);
        if (index == -1) {
            return null;
        }
        return new String[]{source.substring(0, index), source.substring(index + 1)};
    }

    public static boolean isEmpty(String str) {
        return str == null || str.isEmpty();
    }

    /**
     * 返回不为空串的值
     *
     * @param str 值
     * @param defaultVal 值为空时的默认值
     * @return 判空串后的值
     */
    @SuppressWarnings("unused")
    public static String noEmptyVal(String str, String defaultVal) {
        return isEmpty(str) ? defaultVal : str;
    }

    public static String noEmptyVal(String str, Supplier<String> defaultVal) {
        return isEmpty(str) ? defaultVal.get() : str;
    }

    public static boolean isNotEmpty(String str) {
        return !isEmpty(str);
    }
}
